import pandas as pd
import numpy as np
import random

# 设置随机种子以确保结果可重现
np.random.seed(42)
random.seed(42)

# 生成1000行随机数据
n_samples = 10000

# 为每个变量生成随机值（这里假设范围为0-10，你可以根据需要调整）
data = {
    'x1': np.random.uniform(0, 10, n_samples),
    'x2': np.random.uniform(0, 10, n_samples),
    'x3': np.random.uniform(0, 10, n_samples),
    'x4': np.random.uniform(0, 10, n_samples),
    'x5': np.random.uniform(0, 10, n_samples),
    'x6': np.random.uniform(0, 10, n_samples),
    'x7': np.random.uniform(0, 10, n_samples),
    'x8': np.random.uniform(0, 10, n_samples),
    'x9': np.random.uniform(0, 10, n_samples)
}

# 创建DataFrame
df = pd.DataFrame(data)

# 根据公式计算y值：y = 3x1 + 2x2 + 4x3 + 4x4 + 5x5 + 6x6 + 7x7 + 8x8 + 9x9
df['y'] = (3 * df['x1'] + 
           2 * df['x2'] + 
           4 * df['x3'] + 
           4 * df['x4'] + 
           5 * df['x5'] + 
           6 * df['x6'] + 
           7 * df['x7'] + 
           8 * df['x8'] + 
           9 * df['x9'])

# 可选：添加一些噪声使数据更真实
# df['y'] += np.random.normal(0, 1, n_samples)  # 添加标准差为1的高斯噪声

# 保存为CSV文件
df.to_csv('dataset.csv', index=False)

print(f"成功生成包含{n_samples}行数据的CSV文件：dataset.csv")
print("\n前5行数据预览：")
print(df.head())

print("\n数据统计信息：")
print(df.describe())